// 单独的创建一个中间件，然后在app.js中注册使用
const jwt = require('jsonwebtoken')

async function check(ctx,next){
    let url = ctx.url.split('/')[1];
    // 如果是登陆页面和注册页面就不需要验证token了
    if( url === 'index' || url === 'category' || url === 'user'|| url === 'goods'){
		await next()
    }else{
         // 否则获取到token
         let token = ctx.request.header['authorization']
         if(token){
			let jews = jwt.verify(token,'zouling',(err, decoded) =>{
				 if(err){
					 if(err.name === 'JsonWebTokenError'){
						 ctx.body = {
							code:4402,
							msg:"无效的token"
						 }
					 }else if(err.name === 'TokenExpiredError'){
						 ctx.body = {
							code:4402,
							msg:"token已经过期请重新登录"
						 }
					 }
				 }else{
					return true
				 }
			 });
			
			if(jews){
				await next()
			}
         }else{
             ctx.body = {
                 code: 4403,
                 msg:'您还没有登录，请立刻登录'
             } 
         }
    }
}

module.exports = check